你真的会写 HelloWorld 吗? |
您所在的位置:网站首页 › pycharm编写程序输出hello world › 你真的会写 HelloWorld 吗? |
目录 Hello World 写一个批处理命令行脚本 关于include 关于程序的入口 输出充定向 在内存的存储详情 WinHex工具介绍 初学C语言时,第一个程序一定是Hello World!。但是Hello World的具体实现细节你真的了解吗? Hello WorldC语言代码如下: #include int main() { int n = 999; printf("Hello world!%d\r\n",n); return 0; } 写一个批处理命令行脚本 del *.obj // 删除obj文件 del 8.exe // 删除exe文件 cl /c /W4 /WX hello.c // 编程源文件,生成obj文件 link hello.obj // 链接,打包生成可执行程序 hello.exe // 运行exe pause // 暂停进程 关于include实际上处理时就是吧inlcude包含的文件里的代码放进c文件里,相当于替换 #include .h文件,声明性代码,不会产生处理器行为,声明函数等#include .c文件,功能性代码,会产生处理器行为,定义全局变量(占空间)等只找环境变量 一般是官方库, "" 先找当前目录,如果没有,再找环境变量 一般是作者或他人自定义 可以使用这条命令,会生成预处理的文件,代开看看就会发现,Include本质就是一个替换操作。 cl /c /W4 /P Hello.c指向某个文件在电脑磁盘上的位置。 关于程序的入口一般都说C语言的程序的入口是main函数,但实际并非如此。在VC98中,有一个文件CRT0.c的文件,其缩写是C Run Time,是C语言真正的入口。 作用:它的执行开始在exe之前,初始化堆栈,线程,IO等,支持main函数的运行,所以CTR0.c才是程序的运行的环境 关于VC98: VC98是指Microsoft Visual C++ 6.0(也称为Visual C++ 98),是一款由微软开发的集成开发环境(IDE),用于C和C++编程。 Visual C++ 6.0是在1998年发布的,它提供了一套工具和库,用于开发Windows平台下的应用程序。它包括了一个代码编辑器、调试器、编译器以及可视化的界面设计器等。 Visual C++ 6.0是一个相对较旧的版本,它在其发布时是非常受欢迎的,并广泛用于Windows应用程序开发。然而,由于时间的推移和微软的后续版本发布,如Visual Studio 2005、2010、2015等,Visual C++ 6.0逐渐被淘汰。 如果你打算使用Visual C++进行编程,建议考虑使用最新版本的Visual Studio,以获得更好的开发工具和更强大的功能支持。 里面还有很多的具体细节,之后会随着进一步学习慢慢了解 输出充定向输出重定向,把输出内容重定向到磁盘 hello > 1.txtWindows中文乱码解决 chcp 65001效果如下: 观察 999 在内存的存储情况 int main() { int n = 999; printf("n的内存地址是:%p \n",&n); system("pause"); return 0; }运行批处理命令,打印 999 在内存中的存储地址 使用WinHex查看 999 在内存地址的存储情况,8字节 999 的16进制形式: 00000000000003E7 内存存储情况 结论:999 在内存中的存储形式是低位存储在低地址,高位在高地址 对比x64dbg,在x64dbg中使用快捷键 CTRL+G,可以出入指定的地址并查看 从内存布局窗口可以看出,地址的每次变化是8,正对应8各字节,也就是16位16进制数据。 WinHex工具介绍这里主要用于分析查看可执行文件在内存的存储情况,熟悉内存。 在菜单栏下有一个open ram,打开内存 找到你想要分析的进程,选中它即可 查看内存 Primary Memory 主要内存 Entire Memory 全部内存 内存中找数据 寻找999,找999的 16进制的值,进行查找内存地址 程序运行时,除了可执行程序外还有dll动态链接库支持 主要页面 通过这个功能可以跳转到指定到内存地址 因为主要是使用的这款工具分析查看进程程序的内存状况,所以并不会全面的介绍学习这款工具. |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |